﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using YasharEl.Infrastructure.EntityModel;

namespace YasharEl.Infrastructure.TaskEngine
{
    [Serializable]
    public class TaskStatus : Enumeration
    {
        #region TypeSafe Static Enumarations

        public static readonly TaskStatus Active = new ActiveTaskStatus();
        public static readonly TaskStatus Closed = new ClosedTaskStatus();

        #endregion

        #region Constructors

        protected TaskStatus(int value, string shortName, string longName)
            : base(value, shortName, longName)
        {
        }

        protected TaskStatus()
        {
        }

        #endregion

        #region Inner Classes - Type safe concrete enumarations.

        [Serializable]
        private class ActiveTaskStatus : TaskStatus
        {
            public ActiveTaskStatus()
                : base(1, "Active", "Active Task Status")
            {

            }
        }

        [Serializable]
        private class ClosedTaskStatus : TaskStatus
        {
            public ClosedTaskStatus()
                : base(2, "Closed", "Closed Task Status")
            {

            }
        }

        #endregion
    }
}
